Enterprise software systems are typically sophisticated, large-scale systems that support many, e.g., hundreds or thousands, of concurrent users. Examples of enterprise software systems include financial planning systems, budget planning systems, order management systems, inventory management systems, sales force management systems, business intelligence tools, enterprise reporting tools, project and resource management systems, and other enterprise software systems.
Many enterprise performance management and business planning applications require a large base of users to enter data that the software then accumulates into higher level areas of responsibility in the organization. Moreover, once data has been entered, it must be retrieved to be utilized. The system may perform mathematical calculations on the data, combining data submitted by one user with data submitted by other users. Using the results of these calculations, the system may generate reports for review by higher management. Often these complex systems make use of multidimensional data sources that organize and manipulate the tremendous volume of data using data structures referred to as data cubes. Each data cube, for example, includes a plurality of hierarchical dimensions having levels and members for storing the multidimensional data.
In recent years vendors of multidimensional data sources for use in enterprise software systems have increasingly adopted the Multidimensional Expression query language (“MDX”) as a platform for interfacing with the data sources. MDX is a structured query language that software applications utilize to formulate complex queries for retrieving and manipulating the data stored within the multidimensional data sources.
Reporting and analysis end user products (typically referred to as Business Intelligence, or BI, tools) allow users to author reports and perform data exploration and analysis on a myriad of data sources including, primarily, relational and multi-dimensional databases, as well as flat files, Extensible Markup Language (“XML”) data, data streams, and unorganized text and data. Executing an individual report or analysis by BI tools may include parsing and planning the query and then executing the query on the underlying data source, retrieving data from the underlying data source in response to the query, and returning the data to the BI tools.